@page "/pdf/portfolio"
@inject Microsoft.JSInterop.IJSRuntime JS
@using System.IO
@using Syncfusion.Blazor.Buttons
@inject Microsoft.AspNetCore.Hosting.IWebHostEnvironment hostingEnvironment
@inherits SampleBaseComponent;
@*Hidden:Lines*@

@using BlazorDemos.Data.FileFormats.PDF

@*End:Hidden*@

<SampleDescription>
    <p>This sample demonstrates how to create portfolio in the PDF document. You can also extract and remove files from the PDF portfolio. This feature allows the user to bring content together from variety of sources including documents, drawings, images, emails, spreadsheets, and web pages.</p>
</SampleDescription>
<ActionDescription>
  <p>More information about the portfolio can be found in this documentation <a target='_blank' href='https://help.syncfusion.com/file-formats/pdf/working-with-portfolio'>section.</a></p> 
</ActionDescription>

<div class="control-section">
    <p style="font-weight:normal">Click the button to view a PDF document generated by Essential PDF. Please note that Adobe Reader or its equivalent is required to view the resultant document. </p>

    <div class="button-section">
        <div id="button-control">
            <div class="row">
                <div>
                    <SfButton @onclick="GeneratePDF">Generate PDF</SfButton>
                </div>
            </div>
        </div>
    </div>
</div>

<style>
    .radio-control {
        margin: 0 0 5% 0;
    }

    .control-section .row {
        margin: 10px 0;
    }
</style>

@code {
   
    /// <summary>
    /// Create and download the simple PDF document
    ///<summary>
    protected async void GeneratePDF(MouseEventArgs args)
    {	   
        PortfolioService service = new PortfolioService(hostingEnvironment);
        MemoryStream documentStream = service.CreatePdfDocument();
        await JS.SaveAs("Portfolio.pdf", documentStream.ToArray());
    }
}
